package cn.itcast.nems.studentrecord.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * @author ChangLu.Gao
 * @version v1.0
 * @program nems-server
 * @description
 * @date 2023/11/22 10:51
 */
@Data
public class ReceivableAdjustmentDTO {
    /**
     *  调价单ID
     */
    private String id;
    /**
     * 学籍ID
     */
    private String studentRecordId;
    /**
     * 调价学籍上的班级ID
     */
    private Integer clazzId;
    /**
     * 调价学籍上的班级名称
     */
    private String clazzName;
    /**
     * 学籍对应班级的校区ID；冗余字段，用于控制数据权限
     */
    private String clazzCampusId ;
    /**
     * 学籍对应班级的校区名称；冗余字段，用于控制数据权限
     */
    private String clazzCampusName ;
    /**
     * 学籍对应班级的学科ID；冗余字段，用于控制数据权限
     */
    private String clazzSubjectId ;
    /**
     * 学籍对应班级的学科名称；冗余字段，用于控制数据权限
     */
    private String clazzSubjectName ;
    /**
     * 原实际应收金额
     */
    private BigDecimal originalAmount;
    /**
     * 调整金额;调增为“正”，调减为“负”
     */
    private BigDecimal amount;
    /**
     * 可调整金额
     */
    private BigDecimal canAdjustmentAmount;
    /**
     * 调整后应收金额
     */
    private BigDecimal targetAmount;
    /**
     * 原因
     */
    private String reason;
    /**
     * 重读原因说明;来自字典表
     */
    private String reasonDescription;
    /**
     * 备注
     */
    private String remark;
    /**
     * 状态;枚举值：草稿｜DRAFT、待审批｜PENDING、审批中｜APPROVING、审批未通过｜REJECTED、已完成｜FINISHED
     */
    private String state;
    /**
     * 状态描述
     */
    private String stateDesc;
    /**
     * 学员名称
     */
    private String studentName;
    /**
     * 业务线CODE
     */
    private String businessLineCode ;
    /**
     * 业务线名称
     */
    private String businessLineName ;
    /**
     * 创建人邮箱
     */
    private String createdBy;
    /**
     * 创建人姓名
     */
    private String createdByName;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createdDatetime;
    /**
     * 学号
     */
    private String studentNo;
    /**
     * e2_approval_form表ID
     */
    private String formId;
    /**
     * 是否需要当前查看人审批
     */
    private boolean needApproval;
    /**
     * 学员ID
     */
    private Integer studentId;

    /**
     * category：1：审批）2：知会）
     */
    private Integer category ;

    /**
     * 特殊申请;枚举值：非特殊｜0、特殊｜1
     */
    private Boolean specialFlag;
}
